package com.atguigu.mybatis.mapper;

import com.atguigu.mybatis.pojo.User;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @author superHao
 * @date 2022/12/18
 */
public interface SelectMapper {
    /**
     * 根据id查询用户信息
     *
     * @param id 用户id
     * @return {@link User}
     */
    User getUserById(@Param("id") Integer id);

    /**
     * 查询所有用户信息
     *
     * @return {@link List}<{@link User}>
     */
    List<User> getAllUser();

    /**
     * 查询用户总记录数
     *
     * @return {@link Integer}
     */
    Integer getCount();

    /**
     * 根据id查询用户信息为一个map集合
     *
     * @param id 用户id
     * @return {@link Map}<{@link String}, {@link Object}>
     */
    Map<String, Object> getUserByIdToMap(Integer id);

    /**
     * 查询所有用户信息为 map 集合
     *
     * @return {@link Map}<{@link String}, {@link Object}>
     */
    @MapKey("id")
    Map<String, Object> getAllUserToMap();
}
